package apiday08.homework;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * java提供了一些元注解,用于标注在我们定义的注解上,为我们的注解赋能
 * @Target:用于标注我们的注解在哪些位置上可以生效,比如:
 *      ElementType.TYPE:类上,接口上
 *      ElementType.METHOD:方法上
 *      ElementType.FIELD:属性上
 *      ElementType.PARAMETER:参数上
 *      ElementType.CONSTRUCTOR:构造器上
 *
 * @Retention:用于标注我们的注解在哪些生命周期内生效,比如:
 *      RetentionPolicy.SOURCE:只在源文件上生效,编译成class文件后失效
 *      RetentionPolicy.CLASS:在class文件上生效,但是不能被反射机制访问(默认的保留级别)
 *      RetentionPolicy.RUNTIME:在class文件中保留,并且可以被反射机制访问
 */
@Target({ElementType.TYPE,ElementType.CONSTRUCTOR})
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoRunClass {
}
